import json
import faiss
import numpy as np
from embedding import textEmbedding
from rerank import resort

from tipsz8 import saveLocalData,loadLocalData
# 加载已保存的 FAISS 索引和 metadata
index = faiss.read_index("pc_config.index")
with open("pc_config_meta.json", "r", encoding="utf-8") as f:
    metadata = json.load(f)


query = "5.4k 5.8k 6.2k 主流游戏 Ryzen 5"
query_vector = textEmbedding([query])    

k = 10  # 返回前 5 个最相似的商品
D, I = index.search(np.array(query_vector, dtype="float32"), k=10)

# I 是返回的索引位置，D 是距离（越小越相似）
# print(f"\n🔍 输入内容: {query}")
arr=[]
for rank, (idx, dist) in enumerate(zip(I[0], D[0]), 1):
    item = metadata.get(str(idx), {})
    
    arr.append(json.dumps(item, ensure_ascii=False))

saveLocalData(arr, './output/faiss.json')
    # print(item)
# docs = [{"text": item_to_text(it)} for it in arr]
# resort(query,arr)
#     print(f"\n🏆 Top {rank}（距离: {dist:.4f}）")
#     print(f"商品名称: {item.get('商品名称')}")
#     print(f"用途: {item.get('用途')}")
#     print(f"CPU: {item.get('CPU')}")
#     print(f"显卡: {item.get('显卡')}")
#     print(f"价格: {item.get('价格')} 元")
#     print(f"keywords: {item.get('keywords')} ")

    
